package com.smfx.yxt.service;

import java.util.List;

import com.smfx.yxt.model.StudentInfo;
import com.smfx.yxt.model.StudentOrganize;
import com.smfx.yxt.page.Page;
import com.smfx.yxt.reqVo.BaseQueryVO;
import com.smfx.yxt.reqVo.StudentReqVO;
import com.smfx.yxt.view.StudentInfoView;
import com.smfx.yxt.view.StudentInputTotalView;

public interface IStudentService {

	/**
	 * 分页查询学生列表
	 * @param page
	 * @return
	 */
	List<StudentInfo> selectByPage(Page<StudentInfo> page);
	
	List<StudentInfo> selectFullListByPage(Page<StudentInfo> page);
	
	/**
	 * 根据学生id查询教师信息
	 * @param id
	 * @return
	 */
	StudentInfo selectById(Integer id);
	
	/**
	 * 修改学生信息
	 * @param record
	 * @return
	 */
	int updateById(StudentInfo record);
	
	/**
	 * 更新学生积分
	 * @param teacher
	 * @return
	 */
	int updatePoints(Integer id, Float point);
	
	/**
	 * 根据家长openid查询小孩列表
	 * @param openid
	 * @return
	 */
	List<StudentInfo> selectByOpenid(String openid);
	
	/**
	 * 分页查询学生信息及微信绑定状况
	 * @param page
	 * @return
	 */
	List<StudentInfoView> selectByPageForBind(Page<StudentInfoView> page);
	
	List<StudentInfoView> selectByKeywordForBind(StudentReqVO reqVO);
	
	List<StudentInfoView> selectByKeyword(StudentReqVO reqVO);
	
	List<StudentOrganize> fillStudentOrganize(Integer finishYear, Integer studyType);
	
	List<StudentInfo> selectListByParam(StudentReqVO record);
	
	List<StudentOrganize> selectStudentOrganize(Integer finishYear, Integer studyType);
	
	StudentInfo selectStudentBindParent(Integer studentId, String openid);
	
	List<StudentInfo> selectListByIds(String[] ids);
	
	/**
     * 未信息录入的学生名单
     * @param vo
     * @return
     */
    List<StudentInfo> selectNoInputList(BaseQueryVO vo);
    /**
     * 学生信息录入统计
     * @param vo
     * @return
     */
    List<StudentInputTotalView> selectInputTotal(BaseQueryVO vo);
    
    List<Integer> getFullClazz(Integer grade, Integer studyType);
}
